C#.NStar Pre-Pre-I-2o



Привет, неизвестный путник! Здесь вы можете просмотреть информацию о C#.NStar Pre-Pre-I-2o. Вы можете скачать EXE или просмотреть список изменений, скриншоты и/или видео.
Что уже проверено и работает в дополнение к версии (Pre-Pre-Alpha) 0.09@DT:
1. Работающая в большинстве случаев подсветка кода.
2. "Сырые" строки теперь оканчиваются символами "\, вместо "/, для того, чтобы содержимое строки могло оканчиваться прямым слэшем. Также они теперь могут содержать все три типа комментариев, а в них, а также в verbatim-строках внутри "сырых" строк - непарные символы начала и конца "сырых" строк. Это важно потому, что "сырые" строки - это в первую очередь строки с кодом, а код содержит комментарии, в которых может находиться потенциально что угодно, в том числе комбинации /" или "\.
3. Автодополнение, пока что слабо похожее на автодополнение из Visual Studio.
4. Интерактивная консоль. Удобно запускать из ярлыка, в котором прописан путь к файлу CSharp.NStar.Desktop.exe, за которым следует команда "repl". Откроется консольное окно, в котором содержатся нижеследующие инструкции. К сожалению, произвольные символы Юникода в нем не работают, даже не вся кириллица (хотя "ё" работает).
5. Возможность открывать и сохранять файлы с кодом.
6. Добавлена информация о копирайтах.
Что уже проверено и не работает в дополнение к версии (Pre-Pre-Alpha) 0.09:
1. Пока пусто...
Рабочие примеры кода на C#.NStar:
list(3) int a = (((1, 2, 3), (4, 5, 6), (7, 8, 9)), ((10, 11, 12), (13, 14, 15), (16, 17, 18)), ((19, 20, 21), (22, 23, 24), (25, 26, 27)));
return a[1, 2, 3];




Class MyClass
{
     int a = 5;
     real b = 3.14159;
     string c = "A";
 
     Constructor(bool bool)
     {
          if (bool)
          {
                 a = 12;
          }
     }
}
MyClass a1 = new MyClass();
MyClass a2 = new MyClass(8, 2.71828, "$");
MyClass a3 = new MyClass(8, 2.71828);
MyClass a4 = new MyClass(true);
return (a1, a2, a3, a4);




real a = 0;
loop
{
     if !(a >= 10)
          a++;
     else if !(a >= 12)
     {
          a += 0.25;
          continue;
     }
     else if !(a > null)
          continue;
     else
     {
          break;
     }
}
return a;




real Function F(real x, real y)
{
     return x * x + x * y + y * y;
}
System.Func[real, real, real] f;
f = F;
real a = f(3.14159, 2.71828);
f = Max;
real b = f(3.14159, 2.71828);
return (a, b);




Namespace MyNamespace
{
    Namespace MyNamespace
    {
        Class MyClass
        {
            int a = 5;
            real b = 3.14159;
            string c = "A";

            Constructor(bool bool)
            {
                if (bool)
                    a = 12;
            }
        }
    }
}
MyNamespace.MyNamespace.MyClass a1 = new MyNamespace.MyNamespace.MyClass();
MyNamespace.MyNamespace.MyClass a2 = new MyNamespace.MyNamespace.MyClass(8, 2.71828, "$");
MyNamespace.MyNamespace.MyClass a3 = new MyNamespace.MyNamespace.MyClass(8, 2.71828);
MyNamespace.MyNamespace.MyClass a4 = new MyNamespace.MyNamespace.MyClass(true);
return (a1, a2, a3, a4);




(int, int)[2] Function F()
{
    Class MyClass
    {
        int a = 0;
    }
    MyClass b = new MyClass(5);
    return ((b.a, new MyClass(8).a), (b.a, new MyClass(8).a));
}
return F();




return ExecuteString("return args[1];", Q());



System.Func[int] Function F()
{
    int Function F2()
    {
        return 100;
    }
    return F2;
}
return F()();




Все остальное не проверено и, скорее всего, не работает.

Ссылка на EXE

(~40 MB)

Назад ко всем версиям